﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TakbisBilgiSorgu_v1.wsUygulamaYetkiServis;
using TakbisBilgiSorgu_v1.wsUygulamaTakbisServis;
using System.Configuration;
using System.Text;

namespace TakbisBilgiSorgu_v1
{
    public partial class WebForm4 : System.Web.UI.Page
    {
        UygulamaYetkiServis uygulamaYetkiServis = new UygulamaYetkiServis();
        UygulamaTakbisServis uygulamaTakbisServis = new UygulamaTakbisServis();

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    if (((Kullanici)Session["kullanici"]) == null)
                    {
                        MesajVer(ConfigurationManager.AppSettings["GirisYapmalisinizMesaji"].ToString());
                        Response.Redirect("Login.aspx");
                    }
                    else
                    {
                        if (!uygulamaYetkiServis.GrupYetkiVarMiKontrolYeni(((Kullanici)Session["kullanici"]).GrupID, "SFGercekKisiSBIIslemleri.aspx") || ((Kullanici)Session["kullanici"]).AktifMi != 1)
                        {
                            MesajVer(ConfigurationManager.AppSettings["YetkinizYokMesaji"].ToString());
                            Response.Redirect("AnaSayfa.aspx");
                        }
                        else
                        {
                            Session["GercekKisiSerhTapuBolumDurum"] = TapuBolumDurum.Aktif;
                            Session["GercekKisiBeyanTapuBolumDurum"] = TapuBolumDurum.Aktif;
                            Session["GercekKisiIrtifakTapuBolumDurum"] = TapuBolumDurum.Aktif;
                            divGetirGercekKisiBilgi.Visible = false;
                            divGetirGercekKisiBilgiIDDen.Visible = false;
                            divgvGercekKisi.Visible = false;
                            divgvGercekKisiSBI.Visible = false;
                            divgvSBIMalik.Visible = false;
                            divgvSBIUzeriSBI.Visible = false;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["YetkiServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void btnGercekKisiGetir_Click(object sender, EventArgs e)
        {
            try
            {
                GercekKisiBilgi[] gercekKisiBilgiArray = uygulamaTakbisServis.GetirGercekKisiBilgi(SorguTip.SerhBeyanMalik,
                txtAd.Text.Trim(),
                txtSoyad.Text.Trim(),
                txtTcKimlikNo.Text.Trim(),
                txtAnaAd.Text.Trim(),
                txtBabaAd.Text.Trim(),
                (Cinsiyet)Enum.Parse(typeof(Cinsiyet), ddlCinsiyet.SelectedItem.ToString()),
                txtDogumYeri.Text.Trim(),
                (txtDogumGun.Text != null ? Convert.ToInt16(txtDogumGun.Text) : 0),
                (txtDogumAy.Text != null ? Convert.ToInt16(txtDogumAy.Text) : 0),
                (txtDogumYil.Text != null ? Convert.ToInt16(txtDogumYil.Text) : 0),
                (TapuBolumDurum)Enum.Parse(typeof(TapuBolumDurum), ddlTapuBolumDurum.SelectedItem.ToString()),
                (BolgeTip)Enum.Parse(typeof(BolgeTip), ddlBolgeTip.SelectedItem.ToString()),
                Convert.ToInt32(txtBolgeID.Text.Trim()),
                TasinmazTip.Hepsi,
                ((Kullanici)Session["kullanici"]).ID);
                if (gercekKisiBilgiArray != null && gercekKisiBilgiArray.Count() != 0)
                    Session["gercekKisiBilgiList"] = gercekKisiBilgiArray.ToList();
                else
                    Session["gercekKisiBilgiList"] = null;

                if (Session["gercekKisiBilgiList"] == null || ((List<GercekKisiBilgi>)Session["gercekKisiBilgiList"]).Count == 0)
                    MesajVer("Sorgulanan Gerçek Kişi Bulunamadı.");
                else
                {
                    gvGercekKisi.DataSource = (List<GercekKisiBilgi>)Session["gercekKisiBilgiList"];
                    gvGercekKisi.DataBind();
                    ViewState["gercekKisiBilgiList"] = (List<GercekKisiBilgi>)Session["gercekKisiBilgiList"];
                    divgvGercekKisi.Visible = true;
                    divgvGercekKisiSBI.Visible = false;
                    divgvSBIMalik.Visible = false;
                    divgvSBIUzeriSBI.Visible = false;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void gvGercekKisi_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                if (ViewState["gercekKisiBilgiList"] != null)
                {
                    gvGercekKisi.PageIndex = e.NewPageIndex;
                    gvGercekKisi.DataSource = ViewState["gercekKisiBilgiList"];
                }
                else
                    gvGercekKisi.DataSource = null;
                gvGercekKisi.DataBind();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvGercekKisi_RowCreated(object sender, GridViewRowEventArgs e)
        {
            SatirIsaretle(e);
        }

        protected void gvGercekKisi_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "AktifMi")) == "Pasif")
                e.Row.ForeColor = System.Drawing.Color.Red;
        }

        protected void SatirIsaretle(GridViewRowEventArgs e)
        {
            try
            {
                //mause gridin üzerine geldiğinde satırlar işaretlensin diye yaptım
                if (e.Row.RowType != DataControlRowType.DataRow)
                    return;
                // eger yaratilan satir farkliysa data satirindan buradan cik 
                e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#F0FFFF'");
                // mouse overina bu stil attribute'ini ekle 
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;");
                // mouse out ise eski stile don
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnGercekKisiExceleYaz_Click(object sender, EventArgs e)
        {
            try
            {
                if (gvGercekKisi.Rows.Count != 0)
                {
                    byte[] data = uygulamaTakbisServis.GercekKisiBilgiExceleYaz(((List<GercekKisiBilgi>)Session["gercekKisiBilgiList"]).ToArray());
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.ClearContent();
                    Response.AddHeader("content-disposition", "attachment;filename=Rapor.xls");
                    Response.AddHeader("Content-Type", "application/Excel");
                    Response.ContentEncoding = Encoding.GetEncoding("Windows-1252");
                    Response.ContentType = "application/vnd.xls";
                    Response.AddHeader("Content-Length", data.Length.ToString());
                    Response.BinaryWrite(data);
                    Response.Flush();
                    Response.End();
                }
                else
                    MesajVer(ConfigurationManager.AppSettings["YazdirilacakKayitYok"].ToString());
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void btnGercekKisiSerhGetir_Click(object sender, EventArgs e)
        {
            try
            {
                SecilenGercekKisileriGetir();
                if (Session["secilenGercekKisiBilgilist"] != null && ((List<GercekKisiBilgi>)Session["secilenGercekKisiBilgilist"]).Count > 0)
                {
                    if (Session["GercekKisiSerhTapuBolumDurum"] != null)
                    {
                        Session["secilenGercekKisiSbileri"] = new List<SBI>();
                        foreach (GercekKisiBilgi gercekKisiBilgi in ((List<GercekKisiBilgi>)Session["secilenGercekKisiBilgilist"]))
                            ((List<SBI>)Session["secilenGercekKisiSbileri"]).AddRange(uygulamaTakbisServis.GetirSerhGercekKisiIDDen(gercekKisiBilgi.GercekKisiBilgiID, (TapuBolumDurum)Session["GercekKisiSerhTapuBolumDurum"], ((Kullanici)Session["kullanici"]).ID).ToList());
                        if (Session["secilenGercekKisiSbileri"] == null || ((List<SBI>)Session["secilenGercekKisiSbileri"]).Count == 0)
                            MesajVer("Seçilen Gerçek Kişiye Bağlı Şerh Bulunmamaktadır.");
                        else
                        {
                            gvGercekKisiSBI.DataSource = (List<SBI>)Session["secilenGercekKisiSbileri"];
                            gvGercekKisiSBI.DataBind();
                            ViewState["secilenGercekKisiSbileri"] = (List<SBI>)Session["secilenGercekKisiSbileri"];
                            divgvGercekKisiSBI.Visible = true;
                            divgvSBIMalik.Visible = false;
                            divgvSBIUzeriSBI.Visible = false;
                        }
                    }
                    else
                        MesajVer("Aktif, Pasif Veya Hepsi Seçeneklerinden Bir Tanesini Seçip Lütfen Tekrar Deneyiniz.");
                }
                else
                    MesajVer("Gerçek Kişi Seçip Lütfen Tekrar Deneyiniz.");
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void SecilenGercekKisileriGetir()
        {
            Session["secilenGercekKisiBilgilist"] = new List<GercekKisiBilgi>();
            for (int i = 0; i < gvGercekKisi.Rows.Count; i++)
            {
                CheckBox chkRow = (gvGercekKisi.Rows[i].Cells[0].FindControl("CheckBoxGercekKisiBilgi") as CheckBox);
                if (chkRow.Checked)
                    ((List<GercekKisiBilgi>)Session["secilenGercekKisiBilgilist"]).Add(((List<GercekKisiBilgi>)Session["gercekKisiBilgiList"]).Find(ii => ii.GercekKisiBilgiID == Convert.ToDecimal((gvGercekKisi.Rows[i].Cells[0].FindControl("GercekKisiBilgiID") as Label).Text)) as GercekKisiBilgi);
            }
        }

        protected void rbGercekKisiSerhAktif_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiSerhAktif.Checked == true)
                {
                    rbGercekKisiSerhPasif.Checked = false;
                    rbGercekKisiSerhHepsi.Checked = false;
                    Session["GercekKisiSerhTapuBolumDurum"] = TapuBolumDurum.Aktif;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbGercekKisiSerhPasif_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiSerhPasif.Checked == true)
                {
                    rbGercekKisiSerhAktif.Checked = false;
                    rbGercekKisiSerhHepsi.Checked = false;
                    Session["GercekKisiSerhTapuBolumDurum"] = TapuBolumDurum.Pasif;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbGercekKisiSerhHepsi_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiSerhHepsi.Checked == true)
                {
                    rbGercekKisiSerhAktif.Checked = false;
                    rbGercekKisiSerhPasif.Checked = false;
                    Session["GercekKisiSerhTapuBolumDurum"] = TapuBolumDurum.Hepsi;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvGercekKisiSBI_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                if (ViewState["secilenGercekKisiSbileri"] != null)
                {
                    gvGercekKisiSBI.PageIndex = e.NewPageIndex;
                    gvGercekKisiSBI.DataSource = ViewState["secilenGercekKisiSbileri"];
                }
                else
                    gvGercekKisiSBI.DataSource = null;
                gvGercekKisiSBI.DataBind();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvGercekKisiSBI_RowCreated(object sender, GridViewRowEventArgs e)
        {
            SatirIsaretle(e);
        }

        protected void gvGercekKisiSBI_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "TbsbAktifMi")) == "Pasif")
                    e.Row.ForeColor = System.Drawing.Color.Red;
                e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(gvGercekKisiSBI, "Select$" + e.Row.RowIndex);
                e.Row.ToolTip = "Click to select this row.";
            }
        }

        protected void gvGercekKisiSBI_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (gvGercekKisiSBI.Rows.Count > 1)
                {
                    foreach (GridViewRow row in gvGercekKisiSBI.Rows)
                    {
                        if (row.RowIndex == gvGercekKisiSBI.SelectedIndex)
                            Session["secilenGercekKisiSbi"] = (((List<SBI>)Session["secilenGercekKisiSbileri"]).Find(i => i.SbiID == Convert.ToDecimal(gvGercekKisiSBI.DataKeys[gvGercekKisiSBI.SelectedIndex].Values[0])));
                    }
                }
                else
                    Session["secilenGercekKisiSbi"] = (((List<SBI>)Session["secilenGercekKisiSbileri"]).Find(i => i.SbiID == Convert.ToDecimal(gvGercekKisiSBI.DataKeys[gvGercekKisiSBI.SelectedIndex].Values[0])));
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbGercekKisiBeyanAktif_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiBeyanAktif.Checked == true)
                {
                    rbGercekKisiBeyanPasif.Checked = false;
                    rbGercekKisiBeyanHepsi.Checked = false;
                    Session["GercekKisiBeyanTapuBolumDurum"] = TapuBolumDurum.Aktif;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbGercekKisiBeyanPasif_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiBeyanPasif.Checked == true)
                {
                    Session["GercekKisiBeyanTapuBolumDurum"] = TapuBolumDurum.Pasif;
                    rbGercekKisiBeyanAktif.Checked = false;
                    rbGercekKisiBeyanHepsi.Checked = false;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbGercekKisiBeyanHepsi_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiBeyanHepsi.Checked == true)
                {
                    rbGercekKisiBeyanAktif.Checked = false;
                    rbGercekKisiBeyanPasif.Checked = false;
                    Session["GercekKisiBeyanTapuBolumDurum"] = TapuBolumDurum.Hepsi;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnGercekKisiBeyanGetir_Click(object sender, EventArgs e)
        {
            try
            {
                SecilenGercekKisileriGetir();
                if (Session["secilenGercekKisiBilgilist"] != null && ((List<GercekKisiBilgi>)Session["secilenGercekKisiBilgilist"]).Count > 0)
                {
                    if (Session["GercekKisiBeyanTapuBolumDurum"] != null)
                    {
                        Session["secilenGercekKisiSbileri"] = new List<SBI>();
                        foreach (GercekKisiBilgi gercekKisiBilgi in ((List<GercekKisiBilgi>)Session["secilenGercekKisiBilgilist"]))
                            ((List<SBI>)Session["secilenGercekKisiSbileri"]).AddRange(uygulamaTakbisServis.GetirBeyanGercekKisiDen(gercekKisiBilgi.GercekKisiBilgiID, (TapuBolumDurum)Session["GercekKisiSerhTapuBolumDurum"], ((Kullanici)Session["kullanici"]).ID).ToList());
                        if (Session["secilenGercekKisiSbileri"] == null || ((List<SBI>)Session["secilenGercekKisiSbileri"]).Count == 0)
                            MesajVer("Seçilen Gerçek Kişiye Bağlı Beyan Bulunmamaktadır.");
                        else
                        {
                            ViewState["secilenGercekKisiSbileri"] = (List<SBI>)Session["secilenGercekKisiSbileri"];
                            gvGercekKisiSBI.DataSource = (List<SBI>)Session["secilenGercekKisiSbileri"];
                            gvGercekKisiSBI.DataBind();
                            divgvGercekKisiSBI.Visible = true;
                            divgvSBIMalik.Visible = false;
                            divgvSBIUzeriSBI.Visible = false;
                        }
                    }
                    else
                        MesajVer("Aktif, Pasif Veya Hepsi Seçeneklerinden Bir Tanesini Seçip Lütfen Tekrar Deneyiniz.");
                }
                else
                    MesajVer("Gerçek Kişi Seçip Lütfen Tekrar Deneyiniz.");
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void rbGercekKisiIrtifakAktif_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiIrtifakAktif.Checked == true)
                {
                    rbGercekKisiIrtifakPasif.Checked = false;
                    rbGercekKisiIrtifakHepsi.Checked = false;
                    Session["GercekKisiIrtifakTapuBolumDurum"] = TapuBolumDurum.Aktif;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbGercekKisiIrtifakPasif_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiIrtifakPasif.Checked == true)
                {
                    rbGercekKisiIrtifakAktif.Checked = false;
                    rbGercekKisiIrtifakHepsi.Checked = false;
                    Session["GercekKisiIrtifakTapuBolumDurum"] = TapuBolumDurum.Pasif;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbGercekKisiIrtifakHepsi_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbGercekKisiIrtifakHepsi.Checked == true)
                {
                    rbGercekKisiIrtifakAktif.Checked = false;
                    rbGercekKisiIrtifakPasif.Checked = false;
                    Session["GercekKisiIrtifakTapuBolumDurum"] = TapuBolumDurum.Hepsi;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnGercekKisiIrtifakGetir_Click(object sender, EventArgs e)
        {
            try
            {
                SecilenGercekKisileriGetir();
                if (Session["secilenGercekKisiBilgilist"] != null && ((List<GercekKisiBilgi>)Session["secilenGercekKisiBilgilist"]).Count > 0)
                {
                    if (Session["GercekKisiIrtifakTapuBolumDurum"] != null)
                    {
                        Session["secilenGercekKisiSbileri"] = new List<SBI>();
                        foreach (GercekKisiBilgi gercekKisiBilgi in ((List<GercekKisiBilgi>)Session["secilenGercekKisiBilgilist"]))
                            ((List<SBI>)Session["secilenGercekKisiSbileri"]).AddRange(uygulamaTakbisServis.GetirIrtifakGercekKisiDen(gercekKisiBilgi.GercekKisiBilgiID, (TapuBolumDurum)Session["GercekKisiIrtifakTapuBolumDurum"], ((Kullanici)Session["kullanici"]).ID).ToList());
                        if (Session["secilenGercekKisiSbileri"] == null || ((List<SBI>)Session["secilenGercekKisiSbileri"]).Count == 0)
                            MesajVer("Seçilen Gerçek Kişiye Bağlı İrtifak Bulunmamaktadır.");
                        else
                        {
                            ViewState["secilenGercekKisiSbileri"] = (List<SBI>)Session["secilenGercekKisiSbileri"];
                            gvGercekKisiSBI.DataSource = (List<SBI>)Session["secilenGercekKisiSbileri"];
                            gvGercekKisiSBI.DataBind();
                            divgvGercekKisiSBI.Visible = true;
                            divgvSBIMalik.Visible = false;
                            divgvSBIUzeriSBI.Visible = false;
                        }
                    }
                    else
                        MesajVer("Aktif, Pasif Veya Hepsi Seçeneklerinden Bir Tanesini Seçip Lütfen Tekrar Deneyiniz.");
                }
                else
                    MesajVer("Gerçek Kişi Seçip Lütfen Tekrar Deneyiniz.");
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void gvSBIMalik_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                if (ViewState["secilenSBIHissedarlari"] != null)
                {
                    gvSBIMalik.DataSource = ViewState["secilenSBIHissedarlari"];
                    gvSBIMalik.PageIndex = e.NewPageIndex;
                }
                else
                    gvSBIMalik.DataSource = null;
                gvSBIMalik.DataBind();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvSBIMalik_RowCreated(object sender, GridViewRowEventArgs e)
        {
            SatirIsaretle(e);
        }

        protected void gvSBIMalik_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Hisse.TapuBolumDurum")) == "Pasif")
                        e.Row.ForeColor = System.Drawing.Color.Red;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnSecilenSbiMalikGetir_Click(object sender, EventArgs e)
        {
            try
            {
                if (Session["secilenGercekKisiSbi"] != null)
                {
                    if (((SBI)Session["secilenGercekKisiSbi"]).HissedarList.ToList() != null && ((SBI)Session["secilenGercekKisiSbi"]).HissedarList.ToList().Count > 0)
                    {
                        Session["secilenSBIHissedarlari"] = ((SBI)Session["secilenGercekKisiSbi"]).HissedarList.ToList();
                        ViewState["secilenSBIHissedarlari"] = (List<Hissedar>)Session["secilenSBIHissedarlari"];
                        gvSBIMalik.DataSource = (List<Hissedar>)Session["secilenSBIHissedarlari"];
                        gvSBIMalik.DataBind();
                        divgvSBIMalik.Visible = true;
                    }
                    else
                        MesajVer("Seçilen SBI Ye Bağlı Hissedar Bulunmamaktadır.");
                }
                else
                    MesajVer("Lütfen SBI Seçip Tekrar Deneyiniz.");
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnSbiExceleYazdir_Click(object sender, EventArgs e)
        {
            try
            {
                if (gvGercekKisiSBI.Rows.Count != 0)
                {
                    byte[] data = uygulamaTakbisServis.SbiExceleYaz(((List<SBI>)Session["secilenGercekKisiSbileri"]).ToArray());
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.ClearContent();
                    Response.AddHeader("content-disposition", "attachment;filename=Rapor.xls");
                    Response.AddHeader("Content-Type", "application/Excel");
                    Response.ContentEncoding = Encoding.GetEncoding("Windows-1252");
                    Response.ContentType = "application/vnd.xls";
                    Response.AddHeader("Content-Length", data.Length.ToString());
                    Response.BinaryWrite(data);
                    Response.Flush();
                    Response.End();
                }
                else
                    MesajVer(ConfigurationManager.AppSettings["YazdirilacakKayitYok"].ToString());
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void btnSBIMalikExceleYaz_Click(object sender, EventArgs e)
        {
            try
            {
                if (gvSBIMalik.Rows.Count != 0)
                {
                    byte[] data = uygulamaTakbisServis.HissedarExceleYaz(((List<Hissedar>)Session["secilenSBIHissedarlari"]).ToArray());
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.ClearContent();
                    Response.AddHeader("content-disposition", "attachment;filename=Rapor.xls");
                    Response.AddHeader("Content-Type", "application/Excel");
                    Response.ContentEncoding = Encoding.GetEncoding("Windows-1252");
                    Response.ContentType = "application/vnd.xls";
                    Response.AddHeader("Content-Length", data.Length.ToString());
                    Response.BinaryWrite(data);
                    Response.Flush();
                    Response.End();
                }
                else
                    MesajVer(ConfigurationManager.AppSettings["YazdirilacakKayitYok"].ToString());
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void btnSecilenSbiUzeriSbiGetir_Click(object sender, EventArgs e)
        {
            try
            {
                if (Session["secilenGercekKisiSbi"] != null)
                {
                    if (((SBI)Session["secilenGercekKisiSbi"]).Sbi != null && (List<SBI>)(((SBI)Session["secilenGercekKisiSbi"]).Sbi.ToList()) != null && ((List<SBI>)(((SBI)Session["secilenGercekKisiSbi"]).Sbi.ToList())).Count > 0)
                    {
                        Session["secilenSBIUzeriSBI"] = ((List<SBI>)(((SBI)Session["secilenGercekKisiSbi"]).Sbi.ToList()));
                        ViewState["secilenSBIUzeriSBI"] = (List<SBI>)Session["secilenSBIUzeriSBI"];
                        gvSBIUzeriSBI.DataSource = (List<SBI>)Session["secilenSBIUzeriSBI"];
                        gvSBIUzeriSBI.DataBind();
                        divgvSBIUzeriSBI.Visible = true;
                    }
                    else
                        MesajVer("Seçilen SBI Ye Bağlı SBI Bulunmamaktadır.");
                }
                else
                    MesajVer("SBI Seçip Lütfen Tekrar Deneyiniz.");
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvSBIUzeriSBI_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                if (ViewState["secilenSBIUzeriSBI"] != null)
                {
                    gvSBIUzeriSBI.PageIndex = e.NewPageIndex;
                    gvSBIUzeriSBI.DataSource = ViewState["secilenSBIUzeriSBI"];
                }
                else
                    gvSBIUzeriSBI.DataSource = null;
                gvSBIUzeriSBI.DataBind();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvSBIUzeriSBI_RowCreated(object sender, GridViewRowEventArgs e)
        {
            SatirIsaretle(e);
        }

        protected void gvSBIUzeriSBI_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "TbsbAktifMi")) == "Pasif")
                        e.Row.ForeColor = System.Drawing.Color.Red;
                    e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(gvSBIUzeriSBI, "Select$" + e.Row.RowIndex);
                    e.Row.ToolTip = "Click to select this row.";
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnSbiUzeriSbiExceleYazdir_Click(object sender, EventArgs e)
        {
            try
            {
                if (gvSBIUzeriSBI.Rows.Count != 0)
                {
                    byte[] data = uygulamaTakbisServis.SbiExceleYaz(((List<SBI>)Session["secilenSBIUzeriSBI"]).ToArray());
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.ClearContent();
                    Response.AddHeader("content-disposition", "attachment;filename=Rapor.xls");
                    Response.AddHeader("Content-Type", "application/Excel");
                    Response.ContentEncoding = Encoding.GetEncoding("Windows-1252");
                    Response.ContentType = "application/vnd.xls";
                    Response.AddHeader("Content-Length", data.Length.ToString());
                    Response.BinaryWrite(data);
                    Response.Flush();
                    Response.End();
                }
                else
                    MesajVer(ConfigurationManager.AppSettings["YazdirilacakKayitYok"].ToString());
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void btnGetirGercekKisiBilgiIDDen_Click(object sender, EventArgs e)
        {
            try
            {
                if (uygulamaYetkiServis.BosDegerMi(txtGercekKisiID.Text.Trim()) && uygulamaYetkiServis.SqlInjectionControl(txtGercekKisiID.Text.Trim()))
                {
                    Session["gercekKisiBilgiList"] = new List<GercekKisiBilgi>();
                    Session["gercekKisiBilgi"] = uygulamaTakbisServis.GetirGercekKisiBilgiIDDen(Convert.ToDecimal(txtGercekKisiID.Text.Trim()), ((Kullanici)Session["kullanici"]).ID);
                    if (Session["gercekKisiBilgi"] != null)
                        ((List<GercekKisiBilgi>)Session["gercekKisiBilgiList"]).Add((GercekKisiBilgi)Session["gercekKisiBilgi"]);
                    if (Session["gercekKisiBilgiList"] == null || ((List<GercekKisiBilgi>)Session["gercekKisiBilgiList"]).Count == 0)
                        MesajVer("Sorgulanan Gerçek Kişi Bulunamadı.");
                    else
                    {
                        gvGercekKisi.DataSource = Session["gercekKisiBilgiList"];
                        gvGercekKisi.DataBind();
                        ViewState["gercekKisiBilgiList"] = Session["gercekKisiBilgiList"];
                        divgvGercekKisi.Visible = true;
                        divgvGercekKisiSBI.Visible = false;
                        divgvSBIMalik.Visible = false;
                        divgvSBIUzeriSBI.Visible = false;
                    }
                }
                else
                    MesajVer("Sorgulama Kriterini Kontrol Edip Lütfen Tekrar Deneyiniz.");
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void btnGercekKisiGetirIDden_Click(object sender, EventArgs e)
        {
            try
            {
                divGetirGercekKisiBilgiIDDen.Visible = true;
                divGetirGercekKisiBilgi.Visible = false;
                divgvGercekKisi.Visible = false;
                divgvGercekKisiSBI.Visible = false;
                divgvSBIMalik.Visible = false;
                divgvSBIUzeriSBI.Visible = false;
                divGercekKisiSorguKriter.Visible = false;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnGercekKisiGetirr_Click(object sender, EventArgs e)
        {
            try
            {
                divGetirGercekKisiBilgi.Visible = true;
                divGetirGercekKisiBilgiIDDen.Visible = false;
                divgvGercekKisi.Visible = false;
                divgvGercekKisiSBI.Visible = false;
                divgvSBIMalik.Visible = false;
                divgvSBIUzeriSBI.Visible = false;
                divGercekKisiSorguKriter.Visible = false;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void MesajVer(string mesaj)
        {
            ClientScript.RegisterStartupScript(this.GetType(), " Uyarı.. ", "ShowPopup('" + mesaj + "');", true);
        }

        protected void lnkSorguTiplerineGit_Click(object sender, EventArgs e)
        {
            SorguTiplerineGit();
        }

        protected void lnkSorguTiplerineGit1_Click(object sender, EventArgs e)
        {
            SorguTiplerineGit();
        }

        protected void SorguTiplerineGit()
        {
            try
            {
                divGetirGercekKisiBilgi.Visible = false;
                divGetirGercekKisiBilgiIDDen.Visible = false;
                divgvGercekKisi.Visible = false;
                divgvGercekKisiSBI.Visible = false;
                divgvSBIMalik.Visible = false;
                divgvSBIUzeriSBI.Visible = false;
                divGercekKisiSorguKriter.Visible = true;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void lnkSorguTiplerineGit2_Click(object sender, EventArgs e)
        {
            SorguTiplerineGit();
        }
    }
}
